package com.duojuhe.common.utils.pdf;


import cn.hutool.core.exceptions.ExceptionUtil;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class Demo {
/*    public void exportPdf(MultipartFile file, OutputStream outputStream) throws Exception {
        String content = "<p class=\"ql-align-center\"><strong>内容测试</strong></p><p><strong>甲方(出租方) :</strong></p><p><strong>乙方(承租方) :</strong></p><p>甲乙双方就乙方租赁甲方电梯轿厢设置看板媒体(以下简称“看板”)、刊发广告一</p><p>事进行友好协商，达成以下条款，双方共同执行:</p><p class=\"ql-align-center\"><strong>第一条租赁地点</strong></p><p>甲方同意将市区花园(大厦/小区)共部电梯租赁给乙方设置看板，刊发广告。</p><p class=\"ql-align-center\"><strong>第二条设置方式和范围</strong></p><p>1、看板设置于电梯轿厢壁上(超薄型，厚度不超过2cm、长度:、宽度: ;)，用</p><p>粘贴或敷膜方式贴在轿厢壁上，共三面(左、中、右)，</p><p>2、采用进口美国3m技术贴敷在电梯厅门上; (学生打架调解协议书)</p><p>3、电梯轿厢(面向电梯i ]及出梯门时目光所能触及的轿厢壁)。</p><p class=\"ql-align-center\"><strong>第三条设置内容</strong></p><p>1、公益广告(包括社区文化建设、公民道德规范、防火、防盗知识、保健小常识、</p><p>生活小窍门等) ;</p><p>2、商业广告(广告内容必须符合国家广告法的规定，不得发布不宜单位、社区和家</p><p>庭的广告，更不得发布影响少年儿童身心健康的广告) ;</p><p class=\"ql-align-right\"><br></p>\n" +
                "————————————————\n" +
                "版权声明：本文为CSDN博主「m0_47360218」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。\n" +
                "原文链接：https://blog.csdn.net/m0_47360218/article/details/105989290";
        content = content+"<p class=\"ql-align-center\"><strong>合同内容测试</strong></p><p><strong>甲方(出租方) :</strong></p><p><strong>乙方(承租方) :</strong></p><p>甲乙双方就乙方租赁甲方电梯轿厢设置看板媒体(以下简称“看板”)、刊发广告一</p><p>事进行友好协商，达成以下条款，双方共同执行:</p><p class=\"ql-align-center\"><strong>第一条租赁地点</strong></p><p>甲方同意将市区花园(大厦/小区)共部电梯租赁给乙方设置看板，刊发广告。</p><p class=\"ql-align-center\"><strong>第二条设置方式和范围</strong></p><p>1、看板设置于电梯轿厢壁上(超薄型，厚度不超过2cm、长度:、宽度: ;)，用</p><p>粘贴或敷膜方式贴在轿厢壁上，共三面(左、中、右)，</p><p>2、采用进口美国3m技术贴敷在电梯厅门上; (学生打架调解协议书)</p><p>3、电梯轿厢(面向电梯i ]及出梯门时目光所能触及的轿厢壁)。</p>" +
                "<p class=\"ql-align-center\"><strong>第三条设置内容</strong></p><p>1、公益广告(包括社区文化建设、公民道德规范、防火、防盗知识、保健小常识、</p><p>生活小窍门等) ;</p>" +
                "<p>2、商业广告(广告内容必须符合国家广告法的规定，不得发布不宜单位、社区和家<img style='width : 50' src='https://img95.699pic.com/photo/50055/5642.jpg_wh860.jpg' /></p><p>庭的广告，更不得发布影响少年儿童身心健康的广告) ;</p><p class=\"ql-align-right\"><br></p>";
        String waterMarkText =  "按";
        //微软雅黑在windows系统里的位置如下，linux系统直接拷贝该文件放在linux目录下即可
        HtmlToPdfUtils.convertToPdf(content, waterMarkText, "C:\\msyh.ttc,0", outputStream);
    }*/

/*    public void exportVehicleArchives(MultipartFile file, HttpServletResponse response) throws Exception {
        try{
            String fileNamePrefix = "文件名称";
            String date = DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN);
            String fileName = fileNamePrefix + "_" + date +".pdf";
            this.resolveResponse(response, fileName);
           exportPdf(file, response.getOutputStream());
        } catch (Exception e) {
            this.resetResponse(response, e);
        }
    }*/

    private void resolveResponse(HttpServletResponse response, String fileName) throws UnsupportedEncodingException {
        response.setContentType("application/pdf");
        response.setCharacterEncoding("utf-8");
        String encodeFileName = URLEncoder.encode(fileName,"UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + encodeFileName);
        response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
    }

    private void resetResponse(HttpServletResponse response, Exception exception)throws IOException {
        // 重置response
        response.reset();
        response.setContentType("application/json");
        response.setCharacterEncoding("utf-8");
        String stacktrace = ExceptionUtil.stacktraceToString(exception);
        String result = "下载文件失败，" + exception.getMessage();
        response.getWriter().println(result);
    }


}
